/*
    AIP650.h 驱动aip650四位数码管
    木牛流马-华休
    2020年11月2号
*/

#ifndef AIP650_h
#define AIP650_h
#include <inttypes.h>
#include <Arduino.h>

class AIP650 {
  public:
    uint8_t showLight=8;//亮度
    void init(uint8_t clk, uint8_t data);               // 初始化，清空显示屏
    void writeByte(uint8_t wr_data); // Write 8bit data to aip650
    void start(void);              // 开始信号
    void stop(void);               // 结束信号
    void writeBytes(uint8_t adr,uint8_t dat);//写入地址和数据
    // void showNum(int8_t index,int8_t num,bool show_dot=false,int8_t light=8);//index:显示第几位数；num:数值0-9；show_dot:是否显示小数点；light:亮度1-8，改变四位同时改变。
    void showNum(uint8_t index,uint8_t num,bool show_dot);//index:显示第几位数；num:数值0-9；show_dot:是否显示小数点；
    void displayString(String Str);//显示字符串
    void displayString(char *aString);
    void displayString(double value);
    void displayString(int value);
    void displayString(long value);
    void bitDelay(void);//延时函数
    void clearDisplay(void);//清空显示
    void clearTheDisplay(uint8_t index);//清空第几位的显示
    void setShowLight(uint8_t light);//设置数码管显示亮度

  private:
    uint8_t clkpin;//clk的引脚
    uint8_t datapin;//dat的引脚
};
#endif
